package com.hlkj.pay.service.home;

import com.hlkj.pay.dto.home.*;
import com.hlkj.pay.infrastructure.model.order.OrderStatisticsDO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface IWorkbenchStatisticsService {

    /**
     * 根据日期统计交易金额
     */
    public HomePageStatisticsDto statisticsOrders(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 根据日期统计开户数
     */
    public Integer statisticsMechants(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 根据日期统计充值金额
     */
    public BigDecimal statisticsRecharge(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日订单交易统计
     */
    public Map<String, HomePageCharsStatisticsDto> daysStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 近7月订单交易统计
     */
    public Map<String, HomePageCharsStatisticsDto> monthStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日商户排行
     */
    public List<HomePageCharsStatisticsDto> merchantDayTop(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 近7日订单支付方式统计
     */
    public List<HomePageCharsStatisticsDto> payTypeStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日订单支付成功率统计
     */
    public List<HomePageOrderSucessRateDto> statisticsSuccessRate(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日订单支付成功率统计
     */
    public HomeStatisticsDto dataQuery(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 对应商户日销量排行
     */
    public List<HomePageCharsStatisticsDto> merchantDayStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);
}
